// 类

// 父类(基类)
class Father {
	// 保护属性: 只可以在父类或者子类访问
  protected money: number = 5000;
	// 私有属性： 只能在类“Father”中访问
	private _litterMoney: number = 100

	// 访问器
	get a() {
		return this._litterMoney
	}

	set a(num: number) {
		this._litterMoney = num
	}

  makeMoney(num: number) {
    this.money += num;
  }
	constructor() {
		this._litterMoney += 200
	}
}
// 子类(派生类)
class Son extends Father {
	// 公共属性： 随便访问
  public name: string;
  public age: number;
  constructor(name: string, age: number) {
    super();
    this.name = name;
    this.age = age;
  }
  say() {
    console.log(
      `我是${this.name}, 今天${this.age}岁了, 我有${this.money}钱！！！`
    );
  }
}

const s1 = new Son("张三", 2);
console.log(s1)
// 使用访问器
s1.a = 1000
console.log(s1)








